package com.jhgsys.internal.hazard.service;

import com.jhgsys.internal.hazard.entity.HazardReportAreaUser;
import com.jhgsys.internal.common.entity.QueryRequest;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 *  Service接口
 *
 * @author wanghw
 * @date 2024-09-18 14:27:18
 */
public interface IHazardReportAreaUserService extends IService<HazardReportAreaUser> {
    /**
     * 查询（分页）
     * @author wanghw
     * @date 2024-09-18 14:27:18
     * @param request QueryRequest
     * @param hazardReportAreaUser hazardReportAreaUser
     * @return IPage<HazardReportAreaUser>
     */
    IPage<HazardReportAreaUser> findHazardReportAreaUserPage(QueryRequest request, HazardReportAreaUser hazardReportAreaUser);

    /**
     * 查询（所有）
     * @author wanghw
     * @date 2024-09-18 14:27:18
     * @param hazardReportAreaUser hazardReportAreaUser
     * @return List<HazardReportAreaUser>
     */
    List<HazardReportAreaUser> findHazardReportAreaUserList(HazardReportAreaUser hazardReportAreaUser);

    /**
    * 根据ID查询
    * @author wanghw
    * @date 2024-09-18 14:27:18
    * @param id
    * @return HazardReportAreaUser
    */
    HazardReportAreaUser findHazardReportAreaUserById(String id);

    /**
     * 新增
     * @author wanghw
     * @date 2024-09-18 14:27:18
     * @param hazardReportAreaUser hazardReportAreaUser
     */
    boolean createHazardReportAreaUser(HazardReportAreaUser hazardReportAreaUser);

    /**
     * 修改
     * @author wanghw
     * @date 2024-09-18 14:27:18
     * @param hazardReportAreaUser hazardReportAreaUser
     */
    boolean updateHazardReportAreaUser(HazardReportAreaUser hazardReportAreaUser);

    /**
     * 逻辑删除
     * @author wanghw
     * @date 2024-09-18 14:27:18
     * @param hazardReportAreaUser hazardReportAreaUser
     * @param hazardReportAreaUserIds hazardReportAreaUserIds
     */
    boolean deleteHazardReportAreaUser(HazardReportAreaUser hazardReportAreaUser,String hazardReportAreaUserIds);

    /**
    * 物理删除
    * @author wanghw
    * @date 2024-09-18 14:27:18
    * @param hazardReportAreaUserIds hazardReportAreaUserIds
    */
    boolean physicallyDeleteHazardReportAreaUser(String hazardReportAreaUserIds);

    /**
     * 按照隐患编号逻辑删除
     * @param hazardReportAreaUser
     * @param reportId
     * @return
     */
    boolean deleteHazardReportAreaUserByReportId(HazardReportAreaUser hazardReportAreaUser, String reportId);
}
